package com.kfyang.manualgear.util;

import com.kfyang.manualgear.annotation.global.TypeHandler;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Date;

/**
 * 类型处理器
 */
public interface HandlerUtils {
    /**
     * 处理 Date 类型
     * @param rs rs
     * @param col col
     * @return 处理类型
     */
    @TypeHandler
    static Date dateHandler(ResultSet rs, String col) throws SQLException {
        if (rs.getTimestamp(col) != null) {
            return new Date(rs.getTimestamp(col).getTime());
        }
        return null;
    }

    /**
     * 处理 Integer 类型
     * @param rs rs
     * @param col col
     * @return 处理类型
     */
    @TypeHandler
    static Integer intHandler(ResultSet rs, String col) throws SQLException {
        return rs.getInt(col);
    }

    /**
     * 处理 Long 类型
     * @param rs rs
     * @param col col
     * @return 处理类型
     */
    @TypeHandler
    static Long longHandler(ResultSet rs, String col) throws SQLException {
        return rs.getLong(col);
    }

    /**
     * 处理 String 类型
     * @param rs rs
     * @param col col
     * @return 处理类型
     */
    @TypeHandler
    static String stringHandler(ResultSet rs, String col) throws SQLException {
        return rs.getString(col);
    }
}
